package 剑指offer;

/**
 * @author zhangjunfei
 * @date 2023/7/21 15:05
 */
public class O_16 {
    public double myPow(double x, int n) {
        if (n == 0) {
            return 1.0;
        }
        if (n == 1) {
            return x;
        }
        if (n == -1) {
            return 1 / x;
        }
        // 如果n为奇数，则n-1退为偶数
        if ((n & 1) != 0) return x * myPow(x, n - 1);
        // 底数平方，指数除2
        return myPow(x * x, n >> 1);

    }
}
